package com.joymedia.thor.page;

import java.util.Collections;
import java.util.List;
import java.util.function.Function;

/**
 * @author XSH
 */
public interface Page<T> {
    /**
     * 略
     *
     * @param pageable 略
     * @param <T>      略
     * @return 略
     */
    static <T> Page<T> empty(Pageable pageable) {
        return new PageImpl<>(Collections.emptyList(), pageable, 0);
    }

    /**
     * 略
     *
     * @param mapper 略
     * @param <R>    略
     * @return 略
     */
    <R> PageImpl<R> convertTo(Function<T, R> mapper);

    /**
     * 略
     *
     * @return 略
     */
    List<T> getContent();
}
